package com.xique.system.service.biz.service;

import com.xique.common.core.domain.R;
import com.xique.common.core.web.domain.AjaxResult;
import com.xique.system.api.dto.SystemProjectDTO;
import com.xique.system.api.request.RemoteSystemProjectAllListRequest;
import com.xique.system.bean.request.*;

import java.util.List;

/**
 * @author shd
 * @create 2021/12/10 10:41
 */
public interface ISystemProjectBizService {

    /**
     * 获取项目信息
     *
     * @param parkId
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2021/12/10 16:05
     */
    R<SystemProjectDTO> getProjectInfo(Long parkId);

    /**
     * 获取项目列表
     *
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2021/12/10 10:42
     */
    AjaxResult getProjectList(SystemProjectListRequest request);

    /**
     * 添加项目
     *
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2022/3/12 10:29
     */
    AjaxResult addProject(SystemProjectAddRequest request);

    /**
     * 获取项目详情
     *
     * @param id
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2022/3/15 9:31
     */
    AjaxResult getProjectDetail(Long id);

    /**
     * 编辑项目
     *
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2022/3/12 10:56
     */
    AjaxResult editProject(SystemProjectEditRequest request);

    /**
     * 删除项目
     *
     * @param id
     * @return com.xique.common.core.web.domain.AjaxResult
     * @author shd
     * @date 2022/3/12 11:06
     */
    AjaxResult delProject(Long id);

    /**
     * 获取所有项目列表
     *
     * @param request
     * @return com.xique.common.core.domain.R<java.util.List < com.xique.system.api.dto.SystemProjectDTO>>
     * @author shd
     * @date 2022/4/15 15:57
     */
    R<List<SystemProjectDTO>> getAllProjectList(RemoteSystemProjectAllListRequest request);

    /**
     * 获取工行支付配置
     * @param id
     * @return
     */
    AjaxResult getIcbcConfigDetail(Long parkId);

    /**
     * 添加工行配置
     * @param request
     * @return
     */
    AjaxResult addParkPayIcbc(IcbcAddVendorRequest request);

    /**
     * 更新工行配置
     * @param request
     * @return
     */
    AjaxResult updateParkPayIcbc(IcbcUpdateVendorRequest request);

    /**
     * 上传照片
     * @param
     * @return
     */
    AjaxResult uploadPic(ProjectUploadPicRequest request);
}
